home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 2 / CU Amiga Magazine's Super CD-ROM 02 (1996)(EMAP Images)(GB)[!][issue 1996-04].iso / magazine / amiga_e / amigae.june.archive / 000116_crash!kirk.safb.af.mil!BWILLS_Mon, 21 Jun 93 10:29:24 PST.msg < prev    next >
Text File  |  1993-08-31  |  3KB  |  91 lines

  1. Received: by bkhouse.cts.com (V1.16/Amiga)
  2.     id AA00000; Mon, 21 Jun 93 10:29:24 PST
  3. Received: from kirk.safb.af.mil by crash.cts.com with smtp
  4.     (Smail3.1.28.1 #15) id m0o6tPL-00001hC; Fri, 18 Jun 93 20:15 PDT
  5. Message-Id: <m0o6tPL-00001hC@crash.cts.com>
  6. Date: 18 Jun 93 22:12:00 CST
  7. From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
  8. To: "amigae" <amigae@bkhouse.cts.com>
  9. Subject: askreq.e
  10.  
  11. /* Here's something I found in C and I couldn't resist translating it.  It was
  12.    something I was interested in a long time ago, but the one I saw said, "KS2.0
  13.    only!"  (But I think that one did a little more than yes/no.
  14. */
  15.  
  16. /******************************************************
  17. * REQSTD  - A simple boolean requester command for use
  18. *           within EXECUTE command files.
  19. *******************************************************
  20. * THIS VERSION OBSERVES "STANDARD" C PRGMG CONVENTIONS
  21. *******************************************************
  22. * BVO Computing Services, January 1987, Bob Riemersma
  23. *******************************************************
  24. * Format:   REQSTD <string>
  25. * Template: REQSTD " "
  26. * Purpose:  To ask the user a yes/no question from
  27. *           within an EXECUTE command file.
  28. * Specification:
  29. *   REQSTD invokes a system requester displaying the
  30. *   text argument given, and accepts either a "Yes" or
  31. *   a"No" response via the requester's boolean gadgets.
  32. *   This response is communicated to the command stream
  33. *   via REQSTD's return result: 0 = No, 5 = Yes.
  34. * Example:
  35. *           REQSTD "Are you older than 35?"
  36. *           IF WARN  ;WARN = Yes
  37. *              ECHO "Hmmm, so you are."
  38. *           ELSE
  39. *              ECHO "Just a young whippersnapper!"
  40. *           ENDIF
  41. *******************************************************
  42. * Note to rodent-haters:
  43. *   Beginning with KS/WB 1.2 you may respond using
  44. *   "Left Amiga-V" for "Yes", "Left Amiga-B" for "No".
  45. *******************************************************
  46. * Original C code ported to E by Barry Wills, 18 Jun 93.
  47. * Sizes of executables:
  48. *   StdC:     14,388 bytes
  49. *   SkinnyC:   2,540 bytes
  50. *   E:           856 bytes
  51. * Note:  no explanation was provided about "StdC" and
  52. *        "SkinnyC".
  53. *******************************************************
  54. ;I decided to call my executable "AskReq", so I tested
  55. ;it with this script:
  56. AskReq "Will you help me?"
  57. If WARN
  58.   Echo "Oh, thank you, thank you!"
  59. Else
  60.   Echo "Okay, be that way!"
  61. EndIf
  62. ******************************************************/
  63.  
  64. MODULE 'dos/dosextens',
  65.        'intuition/intuition',
  66.        'graphics/rastport'
  67.  
  68. DEF myself : PTR TO process
  69.  
  70.  
  71. PROC main ()
  72.   DEF reqWidth,
  73.       questionLength
  74.  
  75.   IF arg [] = 0 THEN RETURN 120
  76.   questionLength := StrLen (arg)
  77.   /* get rid of quotes efficiently */
  78.   arg [0] := " "
  79.   arg [questionLength - 1] := " "
  80.  
  81.   myself := FindTask (0)
  82.  
  83.   IF (reqWidth := 8 * questionLength + 40) < 200 THEN reqWidth := 200
  84.  
  85.   RETURN IF AutoRequest (myself.windowptr,
  86.                          [2, 1, RP_JAM1, 8, 6, NIL, arg,   NIL] : intuitext,
  87.                          [2, 1, RP_JAM1, 6, 4, NIL, 'Yes', NIL] : intuitext,
  88.                          [2, 1, RP_JAM1, 6, 4, NIL, 'No',  NIL] : intuitext,
  89.                           NIL, NIL,
  90.                           reqWidth, 50) THEN 5 ELSE 0
  91. ENDPROC